--[[ 
1、一个参数是str or table 调用时可以省略()
2、可变参数 ...
 ]] -- 可变参数方法1
function var(...)
    for index, value in ipairs({...}) do print(index, value) end
end
-- 可变参数方法2
function var2(...)
    print(#arg)
    for index, value in ipairs(arg) do print(index, value) end

end
-- var2("a","b",123,'2333')

-- 2、函数尾调用，节约栈空间

function func(num)
    if num > 0 then
        return func(num - 1) --可以不占用栈空间
    else
        return "the end"
    end
end

--print(func(100*1000000000))

funs = [[function return 1+2 end]]
aFun = loadstring("a = ... print(a[1],a[2])")
isfun = funs:match("function(.+)end")
print(isfun,aFun)

--ret = aFun(1,2)
print(aFun({1,2}))
